// src/api/types/merchandise.ts


// 商品管理-查询商品 接口请求数据类型
export interface GetGoodsListParams {
	[x: string]: any;
	page: string;    // 页码
	size: string;    // 每页条数
	category: number; // 分类ID
	meal_name?: string; // 新增参数：商品名称
	supply?: string; // 新增参数：供应商编码
	is_online: string; // 新增参数：商品上下架状态
}

// 商品管理-查询商品 接口响应数据类型
export interface GoodsListResponse {
	total:number
	msg: string;
	code: string;
	data: {
		info_list: GoodsItem[];
		total: number;
		pages: number;
		current_page: number;
	};
}
// 商品管理-新增商品 接口请求数据类型
export interface AddGoodsRequest {
	name : string;
	mealdesc ?: string;
	stock : number;
	supplyer : string; // 注意：虽然响应中是number，但根据之前定义保持string
	category : string; // 注意：虽然响应中是number，但根据之前定义保持string
	seq : number;
	pictureList : PictureItem[];
	spec : SpecItem[];
}
// 商品管理-修改商品 接口请求数据类型
export interface EditGoodsRequest {
	id : number;
	name : string;
	mealdesc ?: string;
	stock : number;
	supplyer : string; // 注意：虽然响应中是number，但根据之前定义保持string
	category : string; // 注意：虽然响应中是number，但根据之前定义保持string
	seq : number;
	pictureList : PictureItem[];
	spec : SpecItem[];
}
// 商品管理-新增/修改商品 接口响应数据类型
export interface GoodsResponse {
	msg : string;
	code : string;
	result : GoodsItem;
}

// 商品项
export interface GoodsItem {
supplyer: any;
[x: string]: any;
	id?: number;       // 响应中是number类型
	name?: string;
	mealdesc?: string;
	supplier?: number; // 注意：字段名从 supplyer 改为 supplier
	category: any; // 响应中是number类型
	seq?: number;
	is_online?: number; // 新增字段：商品上下架状态
	pictureList: PictureItem[]; // 注意：字段名从 picture 改为 pictureList
	spec: SpecItem[]; // 注意：字段名从 spec 改为 spec
}

// 图片项
export interface PictureItem {
	url: string;
	seq: number;
}

// 规格项
export interface SpecItem {
	id?: number;
	specname?: string;
	childspec?: ChildSpecItem[];
	price?:number;
	stock?:number;
	seq?:number
}

// 子规格项
export interface ChildSpecItem {
	id: number;
	spcechildname: string;
	stock: number;
	price: number;
}

// 商品管理-删除商品 接口请求数据类型
export interface DeleteGoodsRequest {
	id : number; // 商品ID
}

// 商品管理-删除商品 接口响应数据类型
export interface DeleteGoodsResponse {
	msg : string;
	code : string;
}